<script>
import Vue from "vue";
import { mapMutations, mapActions, mapState } from "vuex";
import Wechat from "./common/wechat/wechat";
import store from "@/common/store";

export default {
  methods: {
    //应用初始化,获取模板,获取页面路由,获取用户信息,保存用户Token并返回初始进入页面
    ...mapActions([
      "getAppInit",
      "getTemplate",
      "getRoutes",
      "getUserInfo",
      "setTokenAndBack",
    ]),
    // 获取系统栏高度
    async setAppInfo() {
      let that = this;
      let platform = "";
      return new Promise((resolve, reject) => {
        uni.getSystemInfo({
          success: function (e) {
            Vue.prototype.StatusBar = e.statusBarHeight;
            // #ifdef H5
            Vue.prototype.CustomBar = e.statusBarHeight + 45;
            if (that.$wxsdk.isWechat()) {
              platform = "wxOfficialAccount";
            } else {
              platform = "H5";
            }
            // #endif

            // #ifdef APP-PLUS
            platform = "App";
            if (e.platform == "android") {
              uni.setStorageSync("isAndroid", true);
              Vue.prototype.CustomBar = e.statusBarHeight + 50;
            } else {
              Vue.prototype.CustomBar = e.statusBarHeight + 45;
              uni.setStorageSync("isAndroid", false);
            }
            // #endif

            // #ifdef MP-WEIXIN
            platform = "wxMiniProgram";
            new Wechat().getWxMiniProgramSessionKey();
            let custom = wx.getMenuButtonBoundingClientRect();
            Vue.prototype.Custom = custom;
            Vue.prototype.CustomBar =
              custom.bottom + custom.top - e.statusBarHeight;
            // #endif
            uni.setStorageSync("platform", platform);
            resolve(platform);
          },
        });
      });
    },
    // 自动登录
    async autoLogin(data) {
      let initData = data;
      var wechat = new Wechat();
      if (initData.wechat.autologin && !uni.getStorageSync("token")) {
        // #ifdef H5
        uni.setStorageSync("appid", initData.wechat.appid);
        let token = await wechat.login();
        this.setTokenAndBack(token);
        // #endif
        // #ifdef MP-WEIXIN
        wechat.login();
        // #endif
      }
    },
  },
  onLaunch: async function (options) {
    let that = this;
    if (options.query.mode === "save") {
      //截图模式
      uni.setStorageSync("screenShot", true);
      uni.setStorageSync("shop_id", options.query.shop_id);
    }
    // #ifdef MP-WEIXIN
    if (options.scene !== 1154) {
      var wechat = new Wechat();
      wechat.checkMiniProgramUpdate();
    }
    // #endif
    await this.setAppInfo();
    try {
      await this.getTemplate(options);
      let init = await this.getAppInit(options);
      await this.autoLogin(init.data);
      if (process.env.NODE_ENV === "development") {
        await this.getRoutes();
      }
    } catch (e) {
      console.log(e);
    }
  },
  onShow: function () {
    this.$store.commit("CART_NUM");
  },
  onHide: function () {},
};
</script>

<style lang="scss">
@import "static/colorui/main.css";
@import "static/colorui/icon.css";
@import "static/font/shopro-icon.css";
@import "uview-ui/index.scss";

// 其他scss集成在uni.scss,(变量,class,minix)

uni-radio:not([disabled]) .uni-radio-input:hover,
uni-checkbox:not([disabled]) .uni-checkbox-input:hover {
  border-color: #ccc !important;
}

page {
  -webkit-overflow-scrolling: touch; //ios滑动不流畅
  height: 100%;
  background: #f6f6f6;
  width: 100%;
  font-size: 30upx;
  font-family: NotoSansHans-Bold;
  word-break: break-all; //英文文本不换行
  color: #333;
}
::-webkit-scrollbar {
  width: 0;
  height: 0;
  color: transparent;
  display: none;
}
</style>
